Python:评估 pytorch 模型:`with torch.no 您所在的位置:网站首页 python model forward Python:评估 pytorch 模型:`with torch.no

Python:评估 pytorch 模型:`with torch.no

#Python:评估 pytorch 模型:`with torch.no| 来源: 网络整理| 查看: 265

长话短说:

两者都用。他们做不同的事情,有不同的范围。

with torch.no_grad - 禁用autograd中的渐变跟踪。 model.eval()更改调用它的模块的forward()行为 例如,它禁用 dropout 并让批处理规范使用整个人口统计数据 with torch.no_grad

torch.autograd.no_grad文档说:

禁用 [原文如此] 梯度计算的上下文管理器。

当您确定不会调用Tensor.backward()时,禁用梯度计算对于推理很有用。它将减少计算的内存消耗,否则requires_grad=True 。在这种模式下,每个计算的结果都会有requires_grad=False ,即使输入有requires_grad=True 。

model.eval()

nn.Module.eval文档说:

将模块设置为评估模式。

这仅对某些模块有任何影响。如果它们受到影响,请参阅特定模块的文档以了解它们在训练/评估模式下的行为的详细信息,例如Dropout 、 BatchNorm等。

pytorch 的创建者说应该更新文档以建议两者的用法,我提出了pull request 。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有